package org.suwenqian.airoleplayingchatbackend.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 用户实体类，对应数据库中的用户表。
 * 包含用户的基本信息，如用户名、密码、邮箱等。
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@TableName("user")
public class UserDO {
    /**
     * 资源ID
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 用户名，唯一，不能为空。
     */
    private String username;

    /**
     * 加密存储的密码，不能为空。
     */
    private String password;

    /**
     * 邮箱地址，可选。
     */
    private String email;

    /**
     * 用户头像的URL地址，可选。
     */
    private String avatarUrl;

    /**
     * 账户状态，1表示启用，0表示禁用，默认为1。
     */
    private Integer status;

    /**
     * 创建时间，默认值为当前时间戳。
     */
    private LocalDateTime createdAt;
    /**
     * 更新时间，默认值为当前时间戳，并在更新时自动更新。
     */
    private LocalDateTime updatedAt;

}
